package cn.iocoder.an.module.business.controller.admin.maintenanceinformation.vo;

import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.format.DateTimeFormat;
import cn.iocoder.an.framework.excel.core.annotations.DictFormat;
import cn.iocoder.an.framework.excel.core.convert.DictConvert;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户 Excel 导入 VO
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false，避免用户导入有问题
public class MaintenanceInfoImportExcelVO {

    @ExcelIgnore
    private Long id;

    @ExcelProperty("企业名称")
    private String enterpriseName;

    @ExcelProperty("简称")
    private String simpleName;

    @ExcelProperty("信用代码")
    private String creditCode;

    @ExcelProperty("企业代号")
    private String enterpriseCode;

    @ExcelProperty("法人代表")
    private String legalRepresentative;

    @ExcelProperty("公司官网")
    private String companyWebsite;

    @ExcelProperty("联系人")
    private String contactPerson;

    @ExcelProperty("联系电话")
    private String mobilePhone;

    @ExcelProperty("固定电话")
    private String landlinePhone;

    @ExcelProperty("传真号码")
    private String faxNumber;

    @ExcelProperty("企业邮箱")
    private String email;

    @Schema(description = "入选时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat("yyyy-MM-dd")
    @ExcelProperty("入选时间")
    private Date entryDate;

    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat("maintenance_status") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer status;

    @ExcelProperty("开户行")
    private String bankName;

    @ExcelProperty("账号")
    private String bankAccount;

    @ExcelProperty("税号")
    private String taxNumber;

    @ExcelProperty("发票抬头")
    private String invoiceTitle;

    @ExcelProperty("注册地址")
    private String registeredAddress;

    @ExcelProperty("公司地址")
    private String companyAddress;

    @ExcelProperty("经营范围")
    private String businessScope;

    @ExcelProperty("企业信息")
    private String enterpriseInformation;
    

}
